package io.renren.modules.security.controller;

import io.renren.common.utils.Result;
import io.renren.modules.security.dto.SelectImageGenerateParamDto;
import io.renren.modules.security.dto.SelectModelTrainParamDto;
import io.renren.modules.security.dto.UpdateImageGenerateParamDto;
import io.renren.modules.security.dto.UpdateModelTrainParamDto;
import io.renren.modules.security.entity.ImageGenerateParam;
import io.renren.modules.security.entity.ModelTrainParam;
import io.renren.modules.security.service.ImageGenerateParamService;
import io.renren.modules.security.service.ModelTrainParamService;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@Tag(name = "参数管理")
@AllArgsConstructor
@RequestMapping("/paramManage")
public class ParamManageController {

    @Resource
    private ModelTrainParamService modelTrainParamService;
    @Resource
    private ImageGenerateParamService imageGenerateParamService;

    /**
     * 模型训练参数查询
     */
    @GetMapping("/getModelTrainParam")
    public Result<List<ModelTrainParam>> getModelTrainParam(SelectModelTrainParamDto dto) {
        Result<List<ModelTrainParam>> result = new Result<>();
        result.setData(modelTrainParamService.selectList(dto));
        return result;
    }

    /**
     * 模型训练参数修改
     */
    @PostMapping("/updateModelTrainParam")
    public Result<Boolean> updateModelTrainParam(@Validated @RequestBody UpdateModelTrainParamDto dto) {
        Result<Boolean> result = new Result<>();
        result.setData(modelTrainParamService.updateModelTrainParam(dto));
        return result;
    }

    /**
     * 图生图参数查询
     */
    @GetMapping("/getImageParam")
    public Result<List<ImageGenerateParam>> getImageParam(SelectImageGenerateParamDto dto) {
        Result<List<ImageGenerateParam>> result = new Result<>();
        result.setData(imageGenerateParamService.selectList(dto));
        return result;
    }

    /**
     * 图生图参数修改
     */
    @PostMapping("/updateImageParam")
    public Result<Boolean> updateImageParam(@Validated @RequestBody UpdateImageGenerateParamDto dto) {
        Result<Boolean> result = new Result<>();
        result.setData(imageGenerateParamService.updateImageParam(dto));
        return result;
    }
}
